/*
 * @Author: zhangguowei 974599791@qq.com
 * @Date: 2022-08-25 21:09:03
 * @LastEditors: zhangguowei 974599791@qq.com
 * @LastEditTime: 2022-08-30 15:21:24
 * @Description:
 */
import { defineConfig } from "vite";
import vueJsx from "@vitejs/plugin-vue-jsx";
import vue from "@vitejs/plugin-vue";

import path from "path";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue(), vueJsx()],
  css: {
    // css预处理器
    preprocessorOptions: {
      less: {
        charset: false,
        additionalData: '@import "./src/assets/style/global.less";',
      },
    },
  },
  resolve: {
    alias: {
      // 如果报错__dirname找不到，需要安装node,执行yarn add @types/node --save-dev
      "@": path.resolve(__dirname, "src"),
      comps: path.resolve(__dirname, "src/components"),
    },
  },
  // 强制预构建插件包
  optimizeDeps: {
    include: ["axios"],
  },
  // 打包配置
  build: {
    target: "modules",
    outDir: "dist", //指定输出路径
    assetsDir: "assets", // 指定生成静态资源的存放路径
    minify: "terser", // 混淆器，terser构建后文件体积更小
  },
  //项目部署的基础路径
  base: "/",
  // 本地运行配置，及反向代理配置
  server: {
    //服务器主机名
    host: "0.0.0.0",
    //端口号
    port: 8888, // 不知为何更改会有问题
    //设为 true 时若端口已被占用则会直接退出，
    //而不是尝试下一个可用端口
    strictPort: true,
    cors: true, // 默认启用并允许任何源
    open: true, // 在服务器启动时自动在浏览器中打开应用程序
    //https.createServer()配置项
    https: false,
    //反向代理配置，注意rewrite写法，开始没看文档在这里踩了坑
    proxy: {
      "/api": {
        target: "https://api.github.com/", //代理接口
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ""),
      },
      "/users": {
        target: "https://api.github.com/", //代理接口
        changeOrigin: true,
      },
    },
  },
});
